安装前置依赖软件
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install gcc-c++
yum install -y openssl openssl-devel

[root@node01 opt]# cd nginx-1.24.0
[root@node01 nginx-1.24.0]# ./configure  --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module
启动nginx
[root@node01 sbin]# cd /usr/local/nginx/sbin
[root@node01 sbin]# ./nginx -c /usr/local/nginx/conf/nginx.conf
[root@node01 ~]# vi /etc/systemd/system/nginx.service # 设置开机启动
[root@node01 ~]# systemctl enable nginx
华为云yum源
# 拉取华为云官方 yum 源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
# 安装必要服务
yum install -y yum-utils tar device-mapper-persistent-data lvm2 git lrzsz bash-completion
Docker
安装之前关闭防火墙：
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0  临时的重启失效
vim /etc/sysconfig/selinux   永久的
SELINUX=disabled
# 卸载机器自带的docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
# 使用下面的命令安装稳定版仓库，即使安装最新体验版或者是测试版也需要稳定版仓库。
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
# 安装最新版本的docker CE
sudo yum install -y docker-ce-20.10.17
# 启动服务
systemctl start docker.server  && touch /etc/docker/daemon.json
# 配置国内镜像地址
echo "{
    \"registry-mirrors\": [\"https://mirror.ccs.tencentyun.com\",\"http://mirrors.163.com/\",\"https://registry.docker-cn.com\",\"https://kgdsiwq8.mirror.aliyuncs.com\"],
    \"log-driver\":\"json-file\",
    \"log-opts\":{
        \"max-size\" :\"50m\",
        \"max-file\":\"1\"
}
}"   > /etc/docker/daemon.json
# 重启服务
sudo systemctl enable docker --now

mysql-8.0
# 拉取mysql-8.0版本镜像，并创建mysql目录
1. docker pull mysql:8.0
# 创建工作目录
2.  cd /opt/  && mkdir mysql_docker &&  cd mysql_docker/
# 启动镜像，映射配置文件`日志文件`服务文件`端口，变量指定mysql用户名密码
5. docker run -itd --name mysql8.0 --restart always  -m 2g -v  $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql    -e  MYSQL_ROOT_PASSWORD=密码  -e TZ=Asia/Shanghai -p 3305:3306 mysql:8.0
# 找到部署文档内的 init.sql 上传至服务器并导入初始化数据
docker cp  init.sql  mysql8.0:/init.sql
docker exec -it mysql8.0 bash -c "mysql -uroot -p123456 < init.sql"
进到数据库修改最大连接数
SET GLOBAL max_connections = 2000;

redis
# 拉取redis最新镜像，创建redis映射文件
1. docker pull redis:7.0.6
2. mkdir -p /opt/redis_docker/{data,conf}
3. vim /opt/redis_docker/conf/redis.conf

# bind 127.0.0.1 //允许远程连接
protected-mode no
# protected-mode受保护模式 该模式开启只能通过127.0.0.1访问 无法通过外网访问所以这里要禁用
appendonly yes
# appendonly开启持久化
requirepass testpassWord
# 密码 如不需要验证可以不需要

# 启动redis镜像，映射配置文件目录`端口
6. docker run -itd -m 512m --name redis --restart always  -v /opt/redis_docker/data:/data -v /opt/redis_docker/conf/redis.conf:/etc/redis/redis.conf -p 6379:6379 redis:7.0.6 redis-server /etc/redis/redis.conf
7. docker exec -it redis redis-cli  #连接redis测试

xxl-job
xxl-job默认密码为：public
# 下载镜像
1. docker pull qishankeji/xxl-job:2.3.1
# 启动服务
2. docker run -d -m 512m -p 9010:8080  -e JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08 -Dspring.datasource.url=jdbc:mysql://192.168.1.6:3305/xxl_job?Unicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai -Dspring.datasource.username=root -Dspring.datasource.password=123qqq...A" --name xxl-job --privileged=true --restart always  qishankeji/xxl-job:2.3.1

Elsticsearch 7.14
创建es普通用户
useradd elsearch && echo "elsearchpassword" | passwd --stdin "elsearch"
创建es目录并加权限
cd /usr/local/ && mkdir es && chown -R elsearch:elsearch ./es
chmod -R 777 ./es
启动容器
docker run -itd --name elasticsearch --privileged -m 2g -p 9199:9200 -v ./es/data:/usr/local/elasticsearch-7.14.0/data -v ./es/logs:/usr/local/elasticsearch-7.14.0/logs qishankeji/elasticsearch:7.14.0
在次赋予一下刚映射出来的文件的权限
chown -R elsearch:elsearch ./es
chmod -R 777 ./es
修改容器参数，启动容器
docker exec -it elasticsearch bash -c 'sysctl -p'
docker exec -it  elasticsearch su - elsearch -c 'sh /usr/local/elasticsearch-7.14.0/bin/elasticsearch -d'
给es配置密码，他会有提示输入多次密码，建议先复制好然后直接粘贴多次，要不容易输入错误

docker exec -it  elasticsearch su - elsearch -c 'sh /usr/local/elasticsearch-7.14.0/bin/elasticsearch-setup-passwords interactive'
如果报错，docker inspect elasticsearch后再执行。
编写Dockerfile文件的步骤如下：
Dockerfile文件在构建对象的时候使用。
1. 选择一个基础镜像。基础镜像通常是一个操作系统，例如Ubuntu、CentOS等。
2. 设置工作目录。使用WORKDIR指令设置容器内的工作目录。
3. 复制文件或目录。使用COPY或ADD指令将本地文件或目录复制到容器内。
4. 安装依赖。根据需要安装软件包和依赖。
5. 设置环境变量。使用ENV指令设置环境变量。
6. 暴露端口。使用EXPOSE指令声明容器需要监听的端口。
7. 运行命令。使用CMD或ENTRYPOINT指令指定容器启动时要运行的命令。
8. 保存Dockerfile文件。将以上内容保存到一个名为"Dockerfile"的文件中。
# 基于官方的Python镜像
FROM python:3.8-slim
# 设置工作目录
WORKDIR /app
# 复制当前目录下的所有文件到容器的/app目录
COPY . /app
# 安装依赖 安装了requirements.txt中的依赖
RUN pip install --trusted-host pypi.python.org -r requirements.txt
# 暴露端口
EXPOSE 8080
# 运行命令 运行的命令为python app.py
CMD ["python", "app.py"]
帮写一个部署jar包的dockerfile文件：
# 使用官方的Java镜像作为基础镜像
FROM openjdk:8-jdk-alpine
# 设置工作目录
WORKDIR /app
# 将jar包复制到工作目录
COPY target/your-app.jar /app/your-app.jar
# 暴露端口
EXPOSE 8080
# 运行jar包
ENTRYPOINT ["java", "-jar", "/app/your-app.jar"]

查看Dockerfile内容
cat my-mall-gateway/Dockerfile
FROM openjdk:17-jdk-slim-buster    # 基础镜像
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 配置时区
ENV TZ=Asia/Shanghai               # 配置时区
ADD config/ /config/               # 拷贝项目配置文件
ADD my-mall-gateway-1.0.jar my-mall-gateway-1.0.jar  # 拷贝项目jar包
【在Dockerfile中，ADD命令用于将本地文件或目录复制到镜像中。具体来说，ADD my-mall-gateway-1.0.jar my-mall-gateway-1.0.jar
这条命令会将本地的my-mall-gateway-1.0.jar文件复制到镜像的根目录下，并将其命名为my-mall-gateway-1.0.jar。】
ADD lib/ /lib/                     # 拷贝项目依赖jar包
ENTRYPOINT ["java","-jar","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,
address=*:39999","--add-opens=java.base/java.lang=ALL-UNNAMED",
"--add-opens=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED",
"--add-opens=java.base/java.math=ALL-UNNAMED" ,"-Dreactor.netty.ioSelectCount=1",
"-Dreactor.netty.ioWorkerCount=64","my-mall-gateway-1.0.jar"]   # 启动参数
查看shell脚本内容:
cat my-mall-gateway/gateway.sh

name=my-mall-gateway              # 定义项目名称为变量
port=8888                            # 定义项目端口
docker stop $name                    # 停止运行的容器
docker rm $name                      # 删除运行的容器
docker rmi $name                     # 删除原有镜像
docker build -t $name .              # 打包新镜像
docker run -d --name $name --restart always -m 700m    # 启动容器，限制内存700m
-p $port:$port -p 1$port:1$port                        # 映射端口
-e DUBBO_IP_TO_REGISTRY=127.0.0.1               # 配置DUBBO地址（内网IP）
-e spring.profiles.active=prod                         # nacos 命名空间
-e spring.cloud.nacos.server-addr=192.168.1.1:8884     # nacos 地址
-e spring.cloud.nacos.discovery.ip=127.0.0.1           # 服务注册地址（内网IP）
$name                                                  # 镜像名称

nacos 特殊配置说明
application-common.yml 服务中配置的naocs shared-configs(共享配置)
gruul:wechat:app-id: 小程序app-id
gruul:wechat:app-secret: 小程序app-secret
mybatis-plus:configuration:default-enum-type-handler: 默认枚举处理器
logging:config:classpath:config/logback-spring.xml 日志配置
logging:config:level:* 日志级别配置
后端项目打包
所有的项目放到一个文件夹里
在项目同级目录下有一个父工程 pom.xml 文件
用ide打开，mvn打包即可.
接口文档
注:本项目使用接口文档为Torna
remote: Https克隆账号或密码错误：
git config --system --unset credential.helper
如果提示没有权限，则根据目录提示修改权限。
参考网址:https://uniapp.dcloud.net.cn/collocation/manifest.html#devserver
网上写的 设置->运行配置->内置web服务器端口(重启后生效)
改了并不会生效还是需要修改manifest.json的的文章，web配置->前端开发服务端口 修改后重新运行就会生效。